#coding:utf8

# tasks --> borker  --> worker

# Celery的步骤:
# 1. 先创建Celery对象
# 2. 我们通过celery对象来加载配置文件,这个配置文件其实就 设置 broker

from celery import Celery

# celery_tasks 是一个可以通过Celey执行的异步任务
# 我们把这个包的代码放到哪里 都可以执行
# 但是 我们要执行的代码 有一定的局限行
# 所以我们需要将 工程的 setting 文件 添加 到系统中
import os
if not os.getenv('DJANGO_SETTINGS_MODULE'):
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mall.settings'


#创建celery对象
# main 给 celery起一个名字, 这个名字建议采用 脚本路径
# main也可以不设置
# app = Celery('celery_task',broker='redis://127.0.0.1:6379/14')
app = Celery('celery_task')

#我们需要通过celery来设置 broker
# 通过加载配置文件来设置
# 参数是 脚本名.文件名
app.config_from_object('celery_tasks.config')


# 我们需要让 celery 自动检测任务
# tasks 可以检测多个任务 --> 参数就是列表
# 列表中的每一项需要满足: 脚本路径.包名字
app.autodiscover_tasks(['celery_tasks.sms','celery_tasks.email','celery_tasks.html'])


# worker 执行 是通过指令,自动去执行

# celery -A 脚本路径.celery的实例文件 worker -l info
# celery -A celery_tasks.main worker -l info


